package com.micro.ai.auth.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.micro.ai.auth.dto.TenantCreateRequest;
import com.micro.ai.auth.dto.TenantDTO;
import com.micro.ai.auth.dto.TenantUpdateRequest;

/**
 * 租户服务接口
 * 
 * @author micro-ai
 * @since 0.0.1
 */
public interface TenantService {

    /**
     * 创建租户
     */
    TenantDTO createTenant(TenantCreateRequest request);

    /**
     * 更新租户
     */
    TenantDTO updateTenant(String tenantId, TenantUpdateRequest request);

    /**
     * 删除租户
     */
    void deleteTenant(String tenantId);

    /**
     * 根据ID获取租户
     */
    TenantDTO getTenantById(String tenantId);

    /**
     * 根据子域名获取租户
     */
    TenantDTO getTenantBySubdomain(String subdomain);

    /**
     * 分页查询租户
     */
    Page<TenantDTO> listTenants(int pageNum, int pageSize, String keyword, String status, String planType);

    /**
     * 检查子域名是否存在
     */
    boolean existsBySubdomain(String subdomain);
}

